﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LM.InterfacesFabricas.DTOs;
using LM.InterfacesFabricas.Utilidades;
using LM.Negocio.Objetos;
using LM.Repositorios.Interfaces;

namespace LM.Repositorios.Conversores
{
    public class ConversorDeModelo
    {
        public Modelo Converta(DtoModelo dtoModelo)
        {
            var Modelo = new Modelo();

            Modelo.Codigo = dtoModelo.Codigo;
            Modelo.Descricao = dtoModelo.Descricao;
            //Modelo.Marca = ConversorDeObjetos.Copie<Marca>(dtoModelo.Marca);
            Modelo.Marca = FabricaDeRepositorios.Crie<IRepositorioDeMarca>().Consulte(dtoModelo.Marca.Codigo);
            return Modelo;
        }

        public DtoModelo Converta(Modelo Modelo)
        {
            if (Modelo != null)
            {
                var dtoModelo = new DtoModelo();
                dtoModelo.Codigo = Modelo.Codigo;
                dtoModelo.Descricao = Modelo.Descricao;
                dtoModelo.Marca = ConversorDeObjetos.Copie<DtoMarca>(Modelo.Marca);

                return dtoModelo;
            }
            return null;
        }

        public IList<DtoModelo> ConvertaLista(IList<Modelo> modelos)
        {
            var listaDtoModelo = new List<DtoModelo>();

            foreach (var modelo in modelos)
            {
                listaDtoModelo.Add(Converta(modelo));
            }

            return listaDtoModelo;
        }
    }
}
